package com.ssm.car.rpc.api.parkinglot;

import com.github.pagehelper.PageInfo;
import com.ssm.car.dao.model.Parkinglot;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 2017年5月23日  闫增宝
* 停车位管理 Service
* @author GaoXiang
* @version 1.0
*/

public interface ParkinglotService{


    /**
    * 保存数据
    * @param parkinglot 实体对象
    * @return 实体id
    * @throws Exception 数据保存异常
    */
    public Integer insert(Parkinglot parkinglot) throws Exception ;

    /**
    * 根据 id 修改
    * @param parkinglot 带id的实体对象
    * @return 受影响的行数
    * @throws Exception 数据修改异常
    */
    public Integer updateById(Parkinglot parkinglot) throws Exception;

    /**
    * 根据 id 删除
     * 2017-6-3 13:27:40 韩榕榕
    * @param id 数据id
    * @return 受影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteById(String id) throws Exception ;

    /**
    * 根据 id 查找
    * @param id 实体id
    * @return 实体
    */
    public Parkinglot selectById(String id);

    /**
    * 根据 id 批量删除
    * @param ids 要删除的id
    * @return 影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteByIds(List<String> ids) throws Exception ;

    /**
    * 查询列表
    * @param map 参数
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map);

    /**
    * 查询列表 带分页
     * 2017-5-25 12:02:04 韩榕榕
    * @param map 参数
    * @param page 页码
    * @param size 每页大小
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map, int page, int size) ;

    /**
     * 根据停车场id 查询 带地锁的并且 空闲的车位
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> selectByParkingIdAndLock(Parkinglot parkinglot);

    /**
     * 2017年6月2日  闫增宝
     * 判断这个地锁  有没有绑定车位
     * @param lock
     * @return
     */
/*    public Parkinglot selectByLock(Lock lock);*/


    /**
     * 统计同一停车场下车位的序号相同的个数
     * 2017-6-2 10:10:12 韩榕榕
     * @param parkinglot 实体
     * @return
     */
    public Long countParkinglot(Parkinglot parkinglot);

    public List<Parkinglot> selectByParking(String parkingId);

    /**
     * 根据id查询
     * @param ids
     * @return
     */
    public List<Parkinglot> selectByIds(List<String> ids);



    /**
     * 根据停车场搜车位
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> findByParkingId(Parkinglot parkinglot);

    /**
     * 根据分区查图片
     * @param zoneId
     * @return
     */
    public Parkinglot findZoneImg(String  zoneId);
}
